@echo off
echo ===========================================
echo    代码阅读工具启动脚本
echo ===========================================
echo.

:: 检查Python是否已安装
where python >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo [错误] 未找到Python，请安装Python 3.8或更高版本。
    goto :EOF
)

:: 获取当前目录
set "PROJECT_ROOT=%cd%"
set "BACKEND_DIR=%PROJECT_ROOT%\backend"
set "FRONTEND_DIR=%PROJECT_ROOT%\frontend"
set "VENV_DIR=%BACKEND_DIR%\venv"

:: 创建虚拟环境(如果不存在)
if not exist "%VENV_DIR%" (
    echo [信息] 创建虚拟环境...
    python -m venv "%VENV_DIR%"
    if %ERRORLEVEL% neq 0 (
        echo [错误] 创建虚拟环境失败。
        goto :EOF
    )
    echo [成功] 虚拟环境创建完成。
) else (
    echo [信息] 虚拟环境已存在，跳过创建步骤。
)

:: 激活虚拟环境
echo [信息] 激活虚拟环境...
call "%VENV_DIR%\Scripts\activate.bat"

:: 安装依赖
echo [信息] 安装依赖...
pip install -q -r "%BACKEND_DIR%\requirements.txt"
if %ERRORLEVEL% neq 0 (
    echo [错误] 安装依赖失败。
    goto :EOF
)
echo [成功] 依赖安装完成。

:: 检查是否已安装http-server
where http-server >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo [信息] 正在安装http-server...
    call npm install -g http-server
    if %ERRORLEVEL% neq 0 (
        echo [警告] 安装http-server失败，可能需要手动安装: npm install -g http-server
        echo [信息] 可尝试以管理员权限运行，或手动执行 npm install -g http-server
    ) else (
        echo [成功] http-server安装完成。
    )
)

:: 启动后端服务(后台运行)
echo [信息] 启动后端服务...
start cmd /k "cd "%BACKEND_DIR%" && "%VENV_DIR%\Scripts\python.exe" app.py"

:: 等待后端服务启动
echo [信息] 等待后端服务启动(3秒)...
timeout /t 3 /nobreak >nul

:: 启动前端服务(后台运行)
echo [信息] 启动前端服务...
start cmd /k "cd "%FRONTEND_DIR%" && http-server -p 8080"

:: 等待前端服务启动
echo [信息] 等待前端服务启动(2秒)...
timeout /t 2 /nobreak >nul

:: 打开浏览器访问前端页面
echo [信息] 打开浏览器...
start http://localhost:8080

echo.
echo ===========================================
echo    代码阅读工具已启动
echo    后端API: http://localhost:5000
echo    前端页面: http://localhost:8080
echo    
echo    提示: 关闭此窗口将不会停止服务
echo    若要停止服务，请关闭前端和后端命令窗口
echo ===========================================

:: 保持窗口打开
pause 